Data centers are facilities that house computing and/or telecommunication equipment. Data centers are often used by cloud computing providers to provide computing resources to users based on a pay-as-you-go business model. Cloud computing provides scale-out and scale-in capabilities for applications such that any application can request additional resources when necessary, and release resources when the allocated resources exceed its demand. Thus, at any given time cloud computing resources are dynamically allocated to an application based on the demand of the application.
The hardware in a data center may be virtualized by virtualization software to improve hardware efficiency and utilization. A virtualized processor can run multiple virtual machines (VMs). Each VM is created and managed by a hypervisor (also referred to as a virtual machine monitor). An application that runs in the cloud computing environment may request and release VMs on demand. The hardware (e.g., servers or blades) hosting the VMs may be located close together in a data center, or distributed throughout one or more data centers. At any given time, on any active blade or server, multiple VMs may be running simultaneously serving unrelated applications.
Data centers generally incur a high operating cost. During operation, hardware equipment consumes a large amount of power, which in turn dissipates heat that requires cooling. Electricity for powering up and cooling down the data center infrastructure is expensive.
Data centers also incur high capital expenditure on hardware equipment. As the hardware has a mean time to failure, not using all the hardware equally can result in some hardware needing to be replaced frequently for being worn out, and some hardware only being lightly used but eventually being replaced due to obsolescence before reaching the end of its useful life. Overall this results in increased capital expenditure, and more hardware in landfills than if the usage of the hardware had been optimized.